<html>
<head><meta charset="utf-8"><title>meeting 2021-03-30 · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html">meeting 2021-03-30</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="232487721"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232487721" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232487721">(Mar 30 2021 at 19:58)</a>:</h4>
<p>Howdy <span class="user-group-mention" data-user-group-id="692">@WG-traits</span></p>



<a name="232487744"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232487744" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232487744">(Mar 30 2021 at 19:59)</a>:</h4>
<p>running a touch late</p>



<a name="232487745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232487745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232487745">(Mar 30 2021 at 19:59)</a>:</h4>
<p>Meeting in 1ish minutes</p>



<a name="232488010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488010">(Mar 30 2021 at 20:00)</a>:</h4>
<p>Alright, meeting time</p>



<a name="232488050"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488050" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488050">(Mar 30 2021 at 20:00)</a>:</h4>
<p>So, let's start with annoucements?</p>



<a name="232488082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488082">(Mar 30 2021 at 20:00)</a>:</h4>
<p>How's everyone doing?</p>



<a name="232488190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488190">(Mar 30 2021 at 20:01)</a>:</h4>
<p>Tough crowd</p>



<a name="232488222"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488222" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488222">(Mar 30 2021 at 20:01)</a>:</h4>
<p>always asking the hard questions <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="232488370"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488370" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488370">(Mar 30 2021 at 20:02)</a>:</h4>
<p>Anyways, I figured there's a couple things we could discuss this week (at least things I've come up with)</p>



<a name="232488388"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488388" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488388">(Mar 30 2021 at 20:02)</a>:</h4>
<p>But I'm open to other ideas</p>



<a name="232488414"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488414" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488414">(Mar 30 2021 at 20:03)</a>:</h4>
<p>The first is the closure issue in Chalk (<a href="https://github.com/rust-lang/chalk/issues/688">chalk#688</a>)</p>



<a name="232488478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488478">(Mar 30 2021 at 20:03)</a>:</h4>
<p>I was gonna ask whether you had a fix for that</p>



<a name="232488523"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488523" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488523">(Mar 30 2021 at 20:03)</a>:</h4>
<p>You mentioned earlier that you had a temporary fix in mind at least</p>



<a name="232488530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488530">(Mar 30 2021 at 20:03)</a>:</h4>
<p>I do not. I'm changing things a little bit more to actually repro the issue</p>



<a name="232488625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488625">(Mar 30 2021 at 20:04)</a>:</h4>
<p>changing things around the test setup?</p>



<a name="232488671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488671">(Mar 30 2021 at 20:04)</a>:</h4>
<p>Yeah, I mean the hacky fix is for rust-analyzer to just make any escaping bound vars to be a part of the closure params (but that's not really viable)</p>



<a name="232488677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488677">(Mar 30 2021 at 20:04)</a>:</h4>
<p>Yes, test setup</p>



<a name="232488711"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488711" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488711">(Mar 30 2021 at 20:04)</a>:</h4>
<p>Specifically, I have to change it so that you can specify the current known fn sig</p>



<a name="232488793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488793">(Mar 30 2021 at 20:05)</a>:</h4>
<p>as opposed to having the signature generated from the closure definition</p>



<a name="232488828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488828">(Mar 30 2021 at 20:05)</a>:</h4>
<p>But I'm not quite sure the "real" fix</p>



<a name="232488836"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488836" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488836">(Mar 30 2021 at 20:05)</a>:</h4>
<p>but I know the problem</p>



<a name="232488879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488879">(Mar 30 2021 at 20:06)</a>:</h4>
<p>Which I'm curious on what <span class="user-mention" data-user-id="116009">@nikomatsakis</span>'s thoughts are</p>



<a name="232488926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488926">(Mar 30 2021 at 20:06)</a>:</h4>
<p>The other thing we could discuss is WF rules for trait objects</p>



<a name="232488928"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488928" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488928">(Mar 30 2021 at 20:06)</a>:</h4>
<p>ok</p>



<a name="232488931"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488931" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488931">(Mar 30 2021 at 20:06)</a>:</h4>
<p>I'm here now</p>



<a name="232488980"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232488980" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232488980">(Mar 30 2021 at 20:06)</a>:</h4>
<p>Specifically, I was going to try to allow trait objects to have GATs in rustc, but wasn't quite sure what to do</p>



<a name="232489074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489074">(Mar 30 2021 at 20:07)</a>:</h4>
<p>Lastly, we could just discuss the binder refactor PR</p>



<a name="232489085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489085">(Mar 30 2021 at 20:07)</a>:</h4>
<p>I'm pulling up the closure issue</p>



<a name="232489117"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489117" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489117">(Mar 30 2021 at 20:08)</a>:</h4>
<p>there's something else we could talk about</p>



<a name="232489174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489174">(Mar 30 2021 at 20:08)</a>:</h4>
<p>so now that I've blocked out an hour a day for chalk every day :)</p>



<a name="232489217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489217">(Mar 30 2021 at 20:08)</a>:</h4>
<p>I'd like to be sketching out our overall path more, especially around the rust-ty library work</p>



<a name="232489232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489232">(Mar 30 2021 at 20:08)</a>:</h4>
<p>but also impl trait, gats, etc</p>



<a name="232489272"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489272" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489272">(Mar 30 2021 at 20:08)</a>:</h4>
<p>i.e., we could kind of talk about skill trees and dags</p>



<a name="232489309"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489309" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489309">(Mar 30 2021 at 20:09)</a>:</h4>
<p>sketching out the library work sounds great, should help make things more concrete and push things forward</p>



<a name="232489390"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489390" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489390">(Mar 30 2021 at 20:09)</a>:</h4>
<p>Also a good idea</p>



<a name="232489443"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489443" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489443">(Mar 30 2021 at 20:10)</a>:</h4>
<p>I'm leaning somewhat against the closure thing</p>



<a name="232489489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489489">(Mar 30 2021 at 20:10)</a>:</h4>
<p>I think I'd rather discuss that in the morning</p>



<a name="232489499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489499">(Mar 30 2021 at 20:10)</a>:</h4>
<p>when I'm fresher :)</p>



<a name="232489539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489539">(Mar 30 2021 at 20:10)</a>:</h4>
<p>works for me</p>



<a name="232489543"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489543" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489543">(Mar 30 2021 at 20:10)</a>:</h4>
<p>but I'd be up to discuss it another day this week</p>



<a name="232489604"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489604" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489604">(Mar 30 2021 at 20:10)</a>:</h4>
<p>sounds good</p>



<a name="232489616"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489616" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489616">(Mar 30 2021 at 20:10)</a>:</h4>
<p>do we have a hackmd we use for meetings?</p>



<a name="232489630"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489630" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489630">(Mar 30 2021 at 20:10)</a>:</h4>
<p>i know we have done at various times</p>



<a name="232489632"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489632" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489632">(Mar 30 2021 at 20:10)</a>:</h4>
<p>We <em>did</em></p>



<a name="232489646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489646">(Mar 30 2021 at 20:10)</a>:</h4>
<p>a <em>long</em> time ago</p>



<a name="232489649"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489649" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489649">(Mar 30 2021 at 20:11)</a>:</h4>
<p>lol</p>



<a name="232489686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489686">(Mar 30 2021 at 20:11)</a>:</h4>
<p><a href="https://hackmd.io/S8eYagcPSnezRmTdEwyB4Q">https://hackmd.io/S8eYagcPSnezRmTdEwyB4Q</a></p>



<a name="232489690"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489690" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489690">(Mar 30 2021 at 20:11)</a>:</h4>
<p>Hasn't been updated but <a href="https://hackmd.io/nrhN5A8sR2eY9UdfJTKcJg">https://hackmd.io/nrhN5A8sR2eY9UdfJTKcJg</a></p>



<a name="232489692"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489692" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489692">(Mar 30 2021 at 20:11)</a>:</h4>
<p>well there's this :)</p>



<a name="232489720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489720">(Mar 30 2021 at 20:11)</a>:</h4>
<p>yeah, that's the old one</p>



<a name="232489757"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489757" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489757">(Mar 30 2021 at 20:11)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-03-30/near/232489686">said</a>:</p>
<blockquote>
<p><a href="https://hackmd.io/S8eYagcPSnezRmTdEwyB4Q">https://hackmd.io/S8eYagcPSnezRmTdEwyB4Q</a></p>
</blockquote>
<p>oops</p>



<a name="232489765"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489765" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489765">(Mar 30 2021 at 20:11)</a>:</h4>
<p>wrong wg :)</p>



<a name="232489781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489781">(Mar 30 2021 at 20:11)</a>:</h4>
<p>I was a bit confused</p>



<a name="232489831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489831">(Mar 30 2021 at 20:12)</a>:</h4>
<p><a href="https://hackmd.io/team/rust-wg-traits?nav=overview">https://hackmd.io/team/rust-wg-traits?nav=overview</a></p>



<a name="232489838"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489838" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489838">(Mar 30 2021 at 20:12)</a>:</h4>
<p>there we go</p>



<a name="232489933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489933">(Mar 30 2021 at 20:12)</a>:</h4>
<p>ooh gonna bookmark that right away</p>



<a name="232489970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232489970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232489970">(Mar 30 2021 at 20:12)</a>:</h4>
<p>I can make you a member of it, <span class="user-mention" data-user-id="125131">@detrumi</span></p>



<a name="232490029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490029">(Mar 30 2021 at 20:13)</a>:</h4>
<p>I think I already am</p>



<a name="232490044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490044">(Mar 30 2021 at 20:13)</a>:</h4>
<p>can make a new note and everything</p>



<a name="232490058"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490058" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490058">(Mar 30 2021 at 20:13)</a>:</h4>
<p>ok</p>



<a name="232490074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490074">(Mar 30 2021 at 20:13)</a>:</h4>
<p>good because I couldn't figure out how</p>



<a name="232490110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490110">(Mar 30 2021 at 20:13)</a>:</h4>
<p>Do we just want to append onto the old meeting log?</p>



<a name="232490170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490170">(Mar 30 2021 at 20:14)</a>:</h4>
<p>what are we doing :)</p>



<a name="232490187"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490187" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490187">(Mar 30 2021 at 20:14)</a>:</h4>
<p>are we discussing type library?</p>



<a name="232490217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490217">(Mar 30 2021 at 20:14)</a>:</h4>
<p>(cog wheel next to team space, we can add members there)</p>



<a name="232490284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490284">(Mar 30 2021 at 20:14)</a>:</h4>
<p>I think discussing type library/plans is a good idea</p>



<a name="232490294"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490294" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490294">(Mar 30 2021 at 20:14)</a>:</h4>
<p>let's do that</p>



<a name="232490328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490328">(Mar 30 2021 at 20:15)</a>:</h4>
<p>ok, so, last time we talked, there was a PR that seemed cool</p>



<a name="232490336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490336">(Mar 30 2021 at 20:15)</a>:</h4>
<p>(link?)</p>



<a name="232490389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490389">(Mar 30 2021 at 20:15)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/83142">#83142</a></p>



<a name="232490625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490625">(Mar 30 2021 at 20:16)</a>:</h4>
<p>What this does:</p>



<a name="232490635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490635">(Mar 30 2021 at 20:16)</a>:</h4>
<ul>
<li>Introduces <code>Interner</code> trait</li>
</ul>



<a name="232490650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490650">(Mar 30 2021 at 20:16)</a>:</h4>
<p>or maybe we can sketch where we are <em>at</em></p>



<a name="232490664"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490664" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490664">(Mar 30 2021 at 20:17)</a>:</h4>
<p>we have a crate:)</p>



<a name="232490716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490716">(Mar 30 2021 at 20:17)</a>:</h4>
<p><a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_type_ir/index.html"><code>rustc_type_ir</code></a></p>



<a name="232490743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490743">(Mar 30 2021 at 20:17)</a>:</h4>
<p>You are too quick on the links</p>



<a name="232490769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490769">(Mar 30 2021 at 20:17)</a>:</h4>
<p>I go to get a link, come back, and it's there</p>



<a name="232490827"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490827" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490827">(Mar 30 2021 at 20:18)</a>:</h4>
<p>currently it has various small "leaf" types in it</p>



<a name="232490904"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490904" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490904">(Mar 30 2021 at 20:18)</a>:</h4>
<p>yes</p>



<a name="232490954"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490954" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490954">(Mar 30 2021 at 20:19)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/83142">#83142</a> adds an <code>Interner</code> trait in there, right?</p>



<a name="232490964"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490964" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490964">(Mar 30 2021 at 20:19)</a>:</h4>
<p>I think <a href="https://github.com/rust-lang/rust/issues/83142">#83142</a> is enough to start moving the bigger things</p>



<a name="232490972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490972">(Mar 30 2021 at 20:19)</a>:</h4>
<p>Alongside some <code>Debug</code> and <code>HashStable</code> instances</p>



<a name="232490997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232490997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232490997">(Mar 30 2021 at 20:19)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-03-30/near/232490954">said</a>:</p>
<blockquote>
<p><a href="https://github.com/rust-lang/rust/issues/83142">#83142</a> adds an <code>Interner</code> trait in there, right?</p>
</blockquote>
<p>Yes</p>



<a name="232491052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491052">(Mar 30 2021 at 20:19)</a>:</h4>
<p>The <code>Interner</code> trait that abstracts over the types using associated types</p>



<a name="232491167"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491167" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491167">(Mar 30 2021 at 20:20)</a>:</h4>
<p>With mainly <code>alloc_*</code> and <code>mk_*</code> functions</p>



<a name="232491219"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491219" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491219">(Mar 30 2021 at 20:20)</a>:</h4>
<p>how does this compare to chalk's interner</p>



<a name="232491369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491369">(Mar 30 2021 at 20:21)</a>:</h4>
<p>also</p>



<a name="232491375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491375">(Mar 30 2021 at 20:21)</a>:</h4>
<p>ok, I see</p>



<a name="232491391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491391">(Mar 30 2021 at 20:21)</a>:</h4>
<p>generally the same setup</p>



<a name="232491400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491400">(Mar 30 2021 at 20:21)</a>:</h4>
<p>it adds an implementation of the <code>Interner</code> trait for <code>TyInterner&lt;'tcx&gt;</code></p>



<a name="232491424"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491424" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491424">(Mar 30 2021 at 20:21)</a>:</h4>
<p>and then it rewrites some logic to use the methods from the trait, and not the direct methods on <code>TyCtxt&lt;'tcx&gt;</code></p>



<a name="232491429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491429">(Mar 30 2021 at 20:21)</a>:</h4>
<p>in particular, the decoder logic</p>



<a name="232491433"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491433" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491433">(Mar 30 2021 at 20:21)</a>:</h4>
<p>correct?</p>



<a name="232491434"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491434" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491434">(Mar 30 2021 at 20:21)</a>:</h4>
<p>has some duplicate assoc types for variants of the same thing, like <code>Span</code>, <code>AllocatedSpan</code> and <code>AllocatedSpanSlice</code></p>



<a name="232491479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491479">(Mar 30 2021 at 20:22)</a>:</h4>
<p>I think we probably just want to change that impl onto <code>TyCtxt</code></p>



<a name="232491501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491501">(Mar 30 2021 at 20:22)</a>:</h4>
<p>I was going to ask about that</p>



<a name="232491641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491641">(Mar 30 2021 at 20:23)</a>:</h4>
<p>I'm just going to pretend that's what it does for now</p>



<a name="232491647"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491647" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491647">(Mar 30 2021 at 20:23)</a>:</h4>
<p>Yes, that might be simpler, instead of the <code>tcx.interner()</code> function we have now</p>



<a name="232491657"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491657" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491657">(Mar 30 2021 at 20:23)</a>:</h4>
<p>This also made me think: I wonder how much of the <code>Interner</code> we can abstract away</p>



<a name="232491673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491673">(Mar 30 2021 at 20:23)</a>:</h4>
<p>(ps, cc <span class="user-mention" data-user-id="283967">@Zahari Dichev</span>, not sure what time zone you are in :)</p>



<a name="232491720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491720">(Mar 30 2021 at 20:23)</a>:</h4>
<p>what do you mean by "abstract away", <span class="user-mention" data-user-id="232957">@Jack Huey</span> ?</p>



<a name="232491788"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491788" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491788">(Mar 30 2021 at 20:24)</a>:</h4>
<p>So</p>



<a name="232491825"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491825" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491825">(Mar 30 2021 at 20:24)</a>:</h4>
<p>Similar to the <code>ArenaAllocatable</code> trait</p>



<a name="232491903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491903">(Mar 30 2021 at 20:25)</a>:</h4>
<p>But I'm not sure</p>



<a name="232491910"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232491910" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232491910">(Mar 30 2021 at 20:25)</a>:</h4>
<p><a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/arena/trait.ArenaAllocatable.html"><code>ArenaAllocatable</code></a></p>



<a name="232492184"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492184" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492184">(Mar 30 2021 at 20:26)</a>:</h4>
<p>I see</p>



<a name="232492191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492191">(Mar 30 2021 at 20:26)</a>:</h4>
<p>I dont' know</p>



<a name="232492281"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492281" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492281">(Mar 30 2021 at 20:27)</a>:</h4>
<p>It would just be nice if we could remove the need to have a bunch of different functions that essentially only have <code> self.tcx.arena.alloc(value)</code></p>



<a name="232492358"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492358" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492358">(Mar 30 2021 at 20:28)</a>:</h4>
<p>well</p>



<a name="232492422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492422">(Mar 30 2021 at 20:28)</a>:</h4>
<p>it seems like we could have a trait like</p>



<a name="232492498"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492498" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492498">(Mar 30 2021 at 20:28)</a>:</h4>
<p>All <code>alloc_*_from_iter</code> functions could be reduced to 1 function, but that would require the interner trait to have lifetimes on the types</p>



<a name="232492520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492520">(Mar 30 2021 at 20:28)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">trait</span><span class="w"> </span><span class="n">AllocatableIn</span><span class="o">&lt;</span><span class="n">I</span><span class="p">,</span><span class="w"> </span><span class="n">F</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">fn</span> <span class="nf">allocate_in</span><span class="p">(</span><span class="n">interner</span>: <span class="kp">&amp;</span><span class="nc">I</span><span class="p">,</span><span class="w"> </span><span class="n">input</span>: <span class="nc">F</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">Self</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="232492621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492621">(Mar 30 2021 at 20:29)</a>:</h4>
<p>If there was associated lifetimes, what would they look like <span aria-label="thinking" class="emoji emoji-1f914" role="img" title="thinking">:thinking:</span></p>



<a name="232492632"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492632" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492632">(Mar 30 2021 at 20:29)</a>:</h4>
<p>and then do </p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">trait</span><span class="w"> </span><span class="n">Interner</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">TyData</span>: <span class="nc">AllocatableIn</span><span class="o">&lt;</span><span class="bp">Self</span><span class="p">,</span><span class="w"> </span><span class="n">TyData</span><span class="o">&gt;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<p>something like that</p>



<a name="232492719"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492719" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492719">(Mar 30 2021 at 20:30)</a>:</h4>
<p>or rather</p>



<a name="232492727"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492727" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492727">(Mar 30 2021 at 20:30)</a>:</h4>
<p>instead of <code>    fn alloc_promoted(self, value: Self::Promoted) -&gt; Self::AllocatedPromoted;</code></p>



<a name="232492734"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492734" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492734">(Mar 30 2021 at 20:30)</a>:</h4>
<p>you'd have</p>



<a name="232492794"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492794" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492794">(Mar 30 2021 at 20:30)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">type</span> <span class="nc">AllocatedMir</span>: <span class="nc">AllocateIn</span><span class="o">&lt;</span><span class="bp">Self</span><span class="p">,</span><span class="w"> </span><span class="bp">Self</span>::<span class="n">Mir</span><span class="o">&gt;</span><span class="p">;</span><span class="w"></span>
</code></pre></div>



<a name="232492811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492811">(Mar 30 2021 at 20:30)</a>:</h4>
<p>also the name should be <code>AllocateIn</code> per our API guidelines :)</p>



<a name="232492874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492874">(Mar 30 2021 at 20:31)</a>:</h4>
<p>you could do it the other way too</p>



<a name="232492893"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492893" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492893">(Mar 30 2021 at 20:31)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">type</span> <span class="nc">Mir</span>: <span class="nc">AllocateIn</span><span class="o">&lt;</span><span class="bp">Self</span><span class="p">,</span><span class="w"> </span><span class="n">Output</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="bp">Self</span>::<span class="n">AllocatedMir</span><span class="o">&gt;</span><span class="w"></span>
</code></pre></div>



<a name="232492977"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492977" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492977">(Mar 30 2021 at 20:31)</a>:</h4>
<p>Interesting, that different from what I came up with earlier:</p>
<div class="codehilite"><pre><span></span><code>impl&lt;&#39;tcx&gt; Interner&lt;&#39;tcx&gt; for TyInterner&lt;&#39;tcx&gt; {
    fn alloc_from_iter&lt;T: Copy&gt;(self, iter: impl IntoIterator&lt;Item = T&gt;) -&gt; &amp;&#39;tcx mut [T] {
        self.tcx.arena.alloc_from_iter(iter)
    }
</code></pre></div>



<a name="232492995"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232492995" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232492995">(Mar 30 2021 at 20:31)</a>:</h4>
<p>I mean, you could just have a</p>
<div class="codehilite"><pre><span></span><code>trait Internable {
  type Interned;
}
</code></pre></div>



<a name="232493000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493000">(Mar 30 2021 at 20:31)</a>:</h4>
<p>and rewrite the signature to </p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">trait</span><span class="w"> </span><span class="n">AllocateIn</span><span class="o">&lt;</span><span class="n">I</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Output</span><span class="p">;</span><span class="w"></span>

<span class="w">    </span><span class="k">fn</span> <span class="nf">allocate</span><span class="p">(</span><span class="o">&amp;</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">interner</span>: <span class="nc">I</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">Self</span>::<span class="n">Output</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="232493029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493029">(Mar 30 2021 at 20:32)</a>:</h4>
<p>you don't want lifetimes anywhere</p>



<a name="232493110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493110">(Mar 30 2021 at 20:32)</a>:</h4>
<p>gotcha</p>



<a name="232493115"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493115" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493115">(Mar 30 2021 at 20:32)</a>:</h4>
<p>you cant have that, <span class="user-mention" data-user-id="232957">@Jack Huey</span>, because it needs to have access to the interner type</p>



<a name="232493130"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493130" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493130">(Mar 30 2021 at 20:32)</a>:</h4>
<p>you're going to need an impl like</p>



<a name="232493171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493171">(Mar 30 2021 at 20:32)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">impl</span><span class="o">&lt;'</span><span class="na">tcx</span><span class="o">&gt;</span><span class="w"> </span><span class="n">AllocateIn</span><span class="o">&lt;</span><span class="n">TyCtxt</span><span class="o">&lt;'</span><span class="na">tcx</span><span class="o">&gt;&gt;</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">Mir</span><span class="o">&lt;'</span><span class="na">tcx</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Output</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;'</span><span class="na">tcx</span><span class="w"> </span><span class="n">Mir</span><span class="o">&lt;'</span><span class="na">tcx</span><span class="o">&gt;</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="232493217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493217">(Mar 30 2021 at 20:33)</a>:</h4>
<p>in order to access the <code>'tcx</code> lifetime, it needs the <code>I</code> parameter so it can reference <code>TyCtxt&lt;'tcx&gt;</code></p>



<a name="232493257"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493257" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493257">(Mar 30 2021 at 20:33)</a>:</h4>
<p>that example is bad because it also gets it from <code>Mir&lt;'tcx&gt;</code>, but that's not a given</p>



<a name="232493297"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493297" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493297">(Mar 30 2021 at 20:33)</a>:</h4>
<p>I think that makes sense</p>



<a name="232493501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493501">(Mar 30 2021 at 20:34)</a>:</h4>
<p>Yeah, I'll try to see if something like that works</p>



<a name="232493567"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493567" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493567">(Mar 30 2021 at 20:34)</a>:</h4>
<p>ok but let's talk about the next sets of things that we can do to phase in</p>



<a name="232493568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493568">(Mar 30 2021 at 20:34)</a>:</h4>
<p>once this PR lands</p>



<a name="232493586"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493586" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493586">(Mar 30 2021 at 20:35)</a>:</h4>
<p>though I am <span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span> on beautifying it a bit</p>



<a name="232493641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493641">(Mar 30 2021 at 20:35)</a>:</h4>
<p>Just, when I see something like</p>
<div class="codehilite"><pre><span></span><code>type Span = ...;
type AllocatedSpan = ...;
type AllocatedSpanSlice = ...;
</code></pre></div>
<p>repeated over and over, I wonder if there is something better</p>



<a name="232493663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493663">(Mar 30 2021 at 20:35)</a>:</h4>
<p>so, one thing is</p>



<a name="232493668"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493668" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493668">(Mar 30 2021 at 20:35)</a>:</h4>
<p>I think the naming pattern is backwards</p>



<a name="232493685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493685">(Mar 30 2021 at 20:35)</a>:</h4>
<p>most of the time we are working with allocated versions</p>



<a name="232493687"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493687" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493687">(Mar 30 2021 at 20:35)</a>:</h4>
<p>But I am definitely okay with each beautifying before landing or waiting until after</p>



<a name="232493708"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493708" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493708">(Mar 30 2021 at 20:35)</a>:</h4>
<p>e.g., in chalk, the associated types are the <em>interned</em> variants</p>



<a name="232493844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493844">(Mar 30 2021 at 20:37)</a>:</h4>
<p>So you'd want <code>Span-&gt;InternedSpan</code> and <code>AllocatedSpan-&gt;Span</code>?</p>



<a name="232493866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493866">(Mar 30 2021 at 20:37)</a>:</h4>
<p>wait</p>



<a name="232493892"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493892" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493892">(Mar 30 2021 at 20:37)</a>:</h4>
<p>I think <code>Span</code> would be like... <code>UninternedSpan</code> or <code>SpanData</code> or something</p>



<a name="232493927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493927">(Mar 30 2021 at 20:37)</a>:</h4>
<p>that said, I think that those <code>Uninterned</code> variants <em>eventually</em> go away</p>



<a name="232493947"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493947" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493947">(Mar 30 2021 at 20:37)</a>:</h4>
<p>because those uninterned forms move into rust-type-ir</p>



<a name="232493951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493951">(Mar 30 2021 at 20:38)</a>:</h4>
<p>is that right?</p>



<a name="232493972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232493972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232493972">(Mar 30 2021 at 20:38)</a>:</h4>
<p>well</p>



<a name="232494013"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494013" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494013">(Mar 30 2021 at 20:38)</a>:</h4>
<p>some of these types are in other crates</p>



<a name="232494035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zahari Dichev <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494035">(Mar 30 2021 at 20:38)</a>:</h4>
<p><span class="user-mention silent" data-user-id="125131">detrumi</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-03-30/near/232492977">said</a>:</p>
<blockquote>
<p>Interesting, that different from what I came up with earlier:</p>
<p><div class="codehilite"><pre><span></span><code>impl&lt;&#39;tcx&gt; Interner&lt;&#39;tcx&gt; for TyInterner&lt;&#39;tcx&gt; {
    fn alloc_from_iter&lt;T: Copy&gt;(self, iter: impl IntoIterator&lt;Item = T&gt;) -&gt; &amp;&#39;tcx mut [T] {
        self.tcx.arena.alloc_from_iter(iter)
    }
</code></pre></div><br>
</p>
</blockquote>
<p>tried that the other day, unfortunatelly not all of these types are <code>Copy</code> and that was causing some problems for some reason, but this can too be sloved I guess</p>



<a name="232494122"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494122" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zahari Dichev <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494122">(Mar 30 2021 at 20:38)</a>:</h4>
<p>sorry still had not time to devle more.. still in lockdown still craziness at home..</p>



<a name="232494399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494399">(Mar 30 2021 at 20:40)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-03-30/near/232494013">said</a>:</p>
<blockquote>
<p>some of these types are in other crates</p>
</blockquote>
<p>say more</p>



<a name="232494410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494410">(Mar 30 2021 at 20:40)</a>:</h4>
<p>I'm not sure what that has to do with it</p>



<a name="232494429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494429">(Mar 30 2021 at 20:40)</a>:</h4>
<p>in particular</p>



<a name="232494436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494436">(Mar 30 2021 at 20:41)</a>:</h4>
<p>as long as they are nameable from rustc-type-ir it should be ok</p>



<a name="232494474"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494474" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494474">(Mar 30 2021 at 20:41)</a>:</h4>
<p>Well, I think a lot of these types don't need to be associated types on <code>Interner</code> at all</p>



<a name="232494497"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494497" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494497">(Mar 30 2021 at 20:41)</a>:</h4>
<p>maybe</p>



<a name="232494542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494542">(Mar 30 2021 at 20:42)</a>:</h4>
<p>The types in rustc_middle don't need assoc types after the move</p>



<a name="232494602"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494602" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494602">(Mar 30 2021 at 20:42)</a>:</h4>
<p>what types might still need to be assoc types?</p>



<a name="232494608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494608">(Mar 30 2021 at 20:42)</a>:</h4>
<p>but to step back:</p>



<a name="232494621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494621">(Mar 30 2021 at 20:42)</a>:</h4>
<p>I want to kind of undersatnd the overall plan more than the details, though they're relevant</p>



<a name="232494625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494625">(Mar 30 2021 at 20:42)</a>:</h4>
<p>but right now I'm seeing</p>



<a name="232494642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494642">(Mar 30 2021 at 20:42)</a>:</h4>
<ul>
<li>add interner trait</li>
<li>clean it up some</li>
</ul>



<a name="232494658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494658">(Mar 30 2021 at 20:42)</a>:</h4>
<ul>
<li>move types from <code>rustc_middle</code> to <code>rustc_type_ir</code></li>
</ul>



<a name="232494675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494675">(Mar 30 2021 at 20:42)</a>:</h4>
<p>(in which case it is relevant to sketch what that pattern will look like as we move them)</p>



<a name="232494844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494844">(Mar 30 2021 at 20:44)</a>:</h4>
<p>Hmm</p>



<a name="232494902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494902">(Mar 30 2021 at 20:44)</a>:</h4>
<p>let's sketch (in the <a href="https://hackmd.io/K8cPSWn3So2GlPPvPuktAQ">hackmd</a>) the eventual target pattern?</p>



<a name="232494926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232494926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232494926">(Mar 30 2021 at 20:44)</a>:</h4>
<p>for referenced types that are not in rustc_middle (<code>Span</code> from rustc_span for example), we decide whether to add a dependency or keep them as assoc types</p>



<a name="232495029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495029">(Mar 30 2021 at 20:45)</a>:</h4>
<p>ok, we have choices I agree</p>



<a name="232495086"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495086" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495086">(Mar 30 2021 at 20:45)</a>:</h4>
<p>and I also agree it may make sense to keep some of them generic</p>



<a name="232495132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495132">(Mar 30 2021 at 20:46)</a>:</h4>
<p>Span in particular</p>



<a name="232495236"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495236" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495236">(Mar 30 2021 at 20:46)</a>:</h4>
<p>I'm a bit jumbled, I think</p>



<a name="232495278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495278">(Mar 30 2021 at 20:47)</a>:</h4>
<p>But I'm think of <code>impl&lt;'tcx, D: TyDecoder&lt;'tcx&gt;&gt; Decodable&lt;D&gt; for Ty&lt;'tcx&gt; { ... }</code></p>



<a name="232495307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495307">(Mar 30 2021 at 20:47)</a>:</h4>
<p>And where that impl eventually will live</p>



<a name="232495363"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495363" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495363">(Mar 30 2021 at 20:47)</a>:</h4>
<p>who defines the <code>Decodable</code> trait</p>



<a name="232495392"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495392" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495392">(Mar 30 2021 at 20:47)</a>:</h4>
<p>rustc_serialize</p>



<a name="232495476"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495476" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495476">(Mar 30 2021 at 20:48)</a>:</h4>
<p>where does <code>rustc_serialize</code> live in the crate graph</p>



<a name="232495485"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495485" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495485">(Mar 30 2021 at 20:48)</a>:</h4>
<p>one thing i will say</p>



<a name="232495499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495499">(Mar 30 2021 at 20:48)</a>:</h4>
<p>I think there should be no lifetimes at all in <code>rustc_type_ir</code></p>



<a name="232495505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495505">(Mar 30 2021 at 20:48)</a>:</h4>
<p>or we've done something wrong</p>



<a name="232495526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495526">(Mar 30 2021 at 20:48)</a>:</h4>
<p>I was assuming those impls wouldn't move, since we already changed them to use <code>Interner</code> instead of TyCtxt</p>



<a name="232495552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495552">(Mar 30 2021 at 20:48)</a>:</h4>
<p>where do they live now</p>



<a name="232495579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495579">(Mar 30 2021 at 20:49)</a>:</h4>
<p>is this still using some specialization-based thing?</p>



<a name="232495590"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495590" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495590">(Mar 30 2021 at 20:49)</a>:</h4>
<p>Those impls are in <code>rustc_middle</code></p>



<a name="232495611"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495611" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495611">(Mar 30 2021 at 20:49)</a>:</h4>
<p>Shouldn't be any specialization</p>



<a name="232495624"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495624" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495624">(Mar 30 2021 at 20:49)</a>:</h4>
<p>what is a <code>TyDecoder</code></p>



<a name="232495692"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495692" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495692">(Mar 30 2021 at 20:50)</a>:</h4>
<p><a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/codec/trait.TyDecoder.html">https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/codec/trait.TyDecoder.html</a></p>



<a name="232495708"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495708" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495708">(Mar 30 2021 at 20:50)</a>:</h4>
<div class="codehilite"><pre><span></span><code>/// * `Decodable` should be used in crates that don&#39;t depend on
///   `rustc_middle`.
/// * `MetadataDecodable` is used in `rustc_metadata` for types that contain
///   `rustc_metadata::rmeta::Lazy`.
/// * `TyDecodable` should be used for types that are only serialized in crate
///   metadata or the incremental cache. This is most types in `rustc_middle`.
</code></pre></div>



<a name="232495774"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495774" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495774">(Mar 30 2021 at 20:50)</a>:</h4>
<p>(<a href="https://github.com/rust-lang/rust/blob/be79f493fb310b3a6b01ceada32713813bb12a91/compiler/rustc_serialize/src/serialize.rs#L406-L408">https://github.com/rust-lang/rust/blob/be79f493fb310b3a6b01ceada32713813bb12a91/compiler/rustc_serialize/src/serialize.rs#L406-L408</a>)</p>



<a name="232495879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495879">(Mar 30 2021 at 20:51)</a>:</h4>
<p>I might be just missing something that already came up...but why do we have to change <code>tcx()</code> on <code>TyDecoder</code> to <code>interner()</code>?</p>



<a name="232495951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495951">(Mar 30 2021 at 20:51)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="c1">// crate rustc-type-ir</span>
<span class="k">trait</span><span class="w"> </span><span class="n">Interner</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">SpanData</span><span class="p">;</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Span</span><span class="p">;</span><span class="w"></span>

<span class="w">    </span><span class="k">type</span> <span class="nc">Ty</span>: <span class="nc">Allocate</span><span class="o">&lt;</span><span class="bp">Self</span><span class="p">,</span><span class="w"> </span><span class="n">TyS</span><span class="o">&lt;</span><span class="bp">Self</span><span class="o">&gt;&gt;</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="k">trait</span><span class="w"> </span><span class="n">Allocate</span><span class="o">&lt;</span><span class="n">I</span><span class="p">,</span><span class="w"> </span><span class="n">S</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">fn</span> <span class="nf">allocate</span><span class="p">(</span><span class="n">interner</span>: <span class="kp">&amp;</span><span class="nc">I</span><span class="p">,</span><span class="w"> </span><span class="n">source</span>: <span class="nc">S</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">Self</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="k">struct</span> <span class="nc">TyS</span><span class="o">&lt;</span><span class="n">I</span>: <span class="nc">Interner</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="o">..</span><span class="p">.</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="232495965"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495965" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495965">(Mar 30 2021 at 20:51)</a>:</h4>
<p>so that's the rough shape I was imagining, I <em>think</em></p>



<a name="232495986"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232495986" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232495986">(Mar 30 2021 at 20:51)</a>:</h4>
<p>(Also, presumably chalk could use this pattern too...)</p>



<a name="232496019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496019">(Mar 30 2021 at 20:51)</a>:</h4>
<p>I'm sketching in <a href="https://hackmd.io/K8cPSWn3So2GlPPvPuktAQ">https://hackmd.io/K8cPSWn3So2GlPPvPuktAQ</a></p>



<a name="232496067"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496067" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496067">(Mar 30 2021 at 20:52)</a>:</h4>
<p>let's figure out this <code>TyDecodable</code> story now</p>



<a name="232496078"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496078" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496078">(Mar 30 2021 at 20:52)</a>:</h4>
<p>I remember that decoding is a horrible pain in the neck, primarily</p>



<a name="232496086"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496086" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496086">(Mar 30 2021 at 20:52)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-03-30/near/232495879">said</a>:</p>
<blockquote>
<p>I might be just missing something that already came up...but why do we have to change <code>tcx()</code> on <code>TyDecoder</code> to <code>interner()</code>?</p>
</blockquote>
<p>To make it possible to move the types I think? Or do you mean that rustc_middle could just reference them anyways after the move?</p>



<a name="232496203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496203">(Mar 30 2021 at 20:53)</a>:</h4>
<p>Oh right, this all makes more sense if we're planning to move the Decodable impls too</p>



<a name="232496231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496231">(Mar 30 2021 at 20:53)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-03-30/near/232495590">said</a>:</p>
<blockquote>
<p>Those impls are in <code>rustc_middle</code></p>
</blockquote>
<p>so I think then that they could not stay there, because they will be orphaned if ... ah, wait</p>



<a name="232496246"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496246" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496246">(Mar 30 2021 at 20:53)</a>:</h4>
<p>I mean, I might be missing some coherence problems here, but since <code>TyDecoder</code> is in <code>rustc_middle</code>, <code>Interner</code> shouldn't need to know about things that isn't required elsewhere in <code>rustc_type_ir</code></p>



<a name="232496251"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496251" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496251">(Mar 30 2021 at 20:53)</a>:</h4>
<p>well so hold up</p>



<a name="232496273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496273">(Mar 30 2021 at 20:53)</a>:</h4>
<p>I just remembered a few things</p>



<a name="232496353"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496353" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496353">(Mar 30 2021 at 20:54)</a>:</h4>
<p>first of all, I remembered that in chalk the main type <code>Ty&lt;I&gt;</code> redirects to <code>I::InternedTy</code> :)</p>



<a name="232496359"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496359" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496359">(Mar 30 2021 at 20:54)</a>:</h4>
<p>which I had forgotten</p>



<a name="232496376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496376">(Mar 30 2021 at 20:54)</a>:</h4>
<p>yes</p>



<a name="232496420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496420">(Mar 30 2021 at 20:54)</a>:</h4>
<p>ok, so i'm adjusting the HackMd</p>



<a name="232496481"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496481" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496481">(Mar 30 2021 at 20:55)</a>:</h4>
<p>but this is also relevant because</p>



<a name="232496534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496534">(Mar 30 2021 at 20:55)</a>:</h4>
<p>let's add in the directed graph too</p>



<a name="232496547"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496547" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496547">(Mar 30 2021 at 20:55)</a>:</h4>
<p>(do you all know what hackmd I am talking about?)</p>



<a name="232496575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496575">(Mar 30 2021 at 20:55)</a>:</h4>
<p>ack, we're running out of time :)</p>



<a name="232496585"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496585" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496585">(Mar 30 2021 at 20:56)</a>:</h4>
<p>I have another call but I think we should pursue this some more-- maybe one of the morning slots?</p>



<a name="232496639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496639">(Mar 30 2021 at 20:56)</a>:</h4>
<p>I think if we establish the destination more firmly</p>



<a name="232496653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496653">(Mar 30 2021 at 20:56)</a>:</h4>
<p>Yeah</p>



<a name="232496671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496671">(Mar 30 2021 at 20:56)</a>:</h4>
<p>we can then work out the stpes more clearly</p>



<a name="232496677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496677">(Mar 30 2021 at 20:56)</a>:</h4>
<p>Honestly, I just feel a bit washed today</p>



<a name="232496686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496686">(Mar 30 2021 at 20:56)</a>:</h4>
<p>but it seems like there are some question marks</p>



<a name="232496740"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496740" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496740">(Mar 30 2021 at 20:56)</a>:</h4>
<p>yeah</p>



<a name="232496758"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496758" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496758">(Mar 30 2021 at 20:56)</a>:</h4>
<p>it's not just you, this has been a bit messy</p>



<a name="232496818"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496818" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496818">(Mar 30 2021 at 20:57)</a>:</h4>
<p>Because all the <code>Decodable</code> impls I've seen are generic over some <code>D: TyDecodable&lt;'tcx&gt;</code></p>



<a name="232496836"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496836" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496836">(Mar 30 2021 at 20:57)</a>:</h4>
<p>so</p>



<a name="232496852"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496852" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496852">(Mar 30 2021 at 20:57)</a>:</h4>
<p>that will be tricky <em>but</em></p>



<a name="232496863"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496863" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496863">(Mar 30 2021 at 20:57)</a>:</h4>
<p>I see a few routes to solutions</p>



<a name="232496870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496870">(Mar 30 2021 at 20:57)</a>:</h4>
<p>first thing that would be helpful though</p>



<a name="232496899"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496899" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496899">(Mar 30 2021 at 20:57)</a>:</h4>
<p>in the <a href="https://hackmd.io/K8cPSWn3So2GlPPvPuktAQ#Eventual-destination">destination section</a> --</p>



<a name="232496947"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232496947" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232496947">(Mar 30 2021 at 20:58)</a>:</h4>
<p>maybe somebody could sketch out a relevant subset of the crate graph :)</p>



<a name="232497014"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497014" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497014">(Mar 30 2021 at 20:58)</a>:</h4>
<p>I think the relevant things to consider are:</p>



<a name="232497016"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497016" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497016">(Mar 30 2021 at 20:58)</a>:</h4>
<p>I can do that</p>



<a name="232497046"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497046" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497046">(Mar 30 2021 at 20:58)</a>:</h4>
<ul>
<li><code>Span</code> -- this is a good stand-in for some "orthogonal bit of data" that different hosts may want to do differently</li>
</ul>



<a name="232497079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497079">(Mar 30 2021 at 20:59)</a>:</h4>
<ul>
<li><code>Ty</code> -- this is a good stand-in for something that rustc-type-ir wants to define but which hosts want to define the interning scheme</li>
</ul>



<a name="232497134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497134">(Mar 30 2021 at 20:59)</a>:</h4>
<ul>
<li><code>Decodable</code> -- good stand-in for some trait that is not of concern to rustc-type-ir as far as I can tell, just some hosts, and a particularly nasty bit of work</li>
</ul>



<a name="232497162"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497162" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497162">(Mar 30 2021 at 20:59)</a>:</h4>
<p>maybe this will motivate us to propose some improvements to the orphan rules :)</p>



<a name="232497195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497195">(Mar 30 2021 at 21:00)</a>:</h4>
<p>Maybe</p>



<a name="232497262"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497262" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497262">(Mar 30 2021 at 21:00)</a>:</h4>
<p>are there other standins we want?</p>



<a name="232497268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497268">(Mar 30 2021 at 21:00)</a>:</h4>
<p>Btw thank you Niko for helping drive this meeting</p>



<a name="232497308"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497308" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497308">(Mar 30 2021 at 21:00)</a>:</h4>
<p>we should probably have some other common traits, like <code>Debug</code> or whatever</p>



<a name="232497370"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497370" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497370">(Mar 30 2021 at 21:00)</a>:</h4>
<p>hmm, <code>Debug</code> is probably a big one too</p>



<a name="232497371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497371">(Mar 30 2021 at 21:00)</a>:</h4>
<p>as I said, I'm sorry I've been so absent, but I'm feeling a lot of energy and enthusiasm about traits :) I think moving chat and sync time to the morning is a good innovation</p>



<a name="232497411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497411">(Mar 30 2021 at 21:00)</a>:</h4>
<p>Also <code>HashStable</code></p>



<a name="232497418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497418">(Mar 30 2021 at 21:01)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-03-30/near/232497370">said</a>:</p>
<blockquote>
<p>hmm, <code>Debug</code> is probably a big one too</p>
</blockquote>
<p>chalk has a kind of solution here, but it's a bit messy</p>



<a name="232497420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497420">(Mar 30 2021 at 21:01)</a>:</h4>
<p>Yes, I'll definitely be around the next few mornings</p>



<a name="232497433"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497433" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497433">(Mar 30 2021 at 21:01)</a>:</h4>
<p>yeah, let's add in some key traits</p>



<a name="232497443"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497443" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497443">(Mar 30 2021 at 21:01)</a>:</h4>
<p>that would be super helpful</p>



<a name="232497448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497448">(Mar 30 2021 at 21:01)</a>:</h4>
<p>and then we can iterate a bit</p>



<a name="232497478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497478">(Mar 30 2021 at 21:01)</a>:</h4>
<p>I think what else would be good is sketching out some representative impls and how they look <em>today</em></p>



<a name="232497487"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497487" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497487">(Mar 30 2021 at 21:01)</a>:</h4>
<p>(which crates do they live in, for example)</p>



<a name="232497506"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497506" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497506">(Mar 30 2021 at 21:01)</a>:</h4>
<p>ok, gotta go</p>



<a name="232497516"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497516" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497516">(Mar 30 2021 at 21:01)</a>:</h4>
<p><span aria-label="wave" class="emoji emoji-1f44b" role="img" title="wave">:wave:</span></p>



<a name="232497524"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497524" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497524">(Mar 30 2021 at 21:01)</a>:</h4>
<p>Thanks everyone :)</p>



<a name="232497588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-30/near/232497588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-30.html#232497588">(Mar 30 2021 at 21:02)</a>:</h4>
<p>As unhelpful as I feel <em>I've</em> been, this meeting overall feels very helpful</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>